<?php

/**
 * This is the model class for table "uad.persona".
 *
 * The followings are the available columns in table 'uad.persona':
 * @property integer $id
 * @property string $apellido
 * @property string $nombre
 * @property string $clase_documento
 * @property integer $id_tipodocumento
 * @property string $numero_documento
 * @property string $sexo
 * @property string $fecha_nacimiento
 * @property string $pais_nacimiento
 * @property string $alfabeta
 * @property string $mayores_estudios
 * @property string $anio_mayores_estudios
 * @property string $estado_estudios
 * @property string $calle
 * @property integer $nro_calle
 * @property integer $piso
 * @property string $dpto
 * @property string $manzana
 * @property string $entrecalle1
 * @property string $entrecalle2
 * @property string $email
 * @property string $telefono
 * @property string $celular
 * @property integer $id_barrio
 * @property integer $id_municipio
 * @property string $observacioninterna
 *
 * The followings are the available model relations:
 * @property Sumar $sumar
 * @property TipoDocumento $idTipodocumento
 * @property Municipio $idMunicipio
 * @property Barrio $idBarrio
 */
class Persona extends CActiveRecord
{
    
     public $departamento = -1;
     public $localidad = -1;
     public $municipio = -1;
     public $barrio = -1;
     
	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'uad.persona';
	}
        

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('apellido, nombre, id_tipodocumento, numero_documento, sexo, fecha_nacimiento, calle, nro_calle, id_barrio, id_municipio', 'required'),
			array('id_tipodocumento, nro_calle, piso, id_barrio, id_municipio', 'numerical', 'integerOnly'=>true),
			array('clase_documento, alfabeta, estado_estudios', 'length', 'max'=>1),
			array('numero_documento', 'length', 'max'=>20),               
                        array('apellido, nombre, numero_documento, fecha_nacimiento, calle, nro_calle', 'filter', 'filter'=>'trim' ),		
                        array('anio_mayores_estudios', 'length', 'max'=>2),
			array('pais_nacimiento', 'length', 'max'=>150),
			array('mayores_estudios', 'length', 'max'=>100),
			array('calle, observacioninterna', 'length', 'max'=>255),
			array('dpto', 'length', 'max'=>3),
			array('manzana, entrecalle1, entrecalle2, email, telefono, celular', 'safe'),                    
                        array('numero_documento', 'rulesDniValido'),
                        array('fecha_nacimiento', 'rulesFechaValida'),
                        array('fecha_nacimiento', 'rulesNacimientoValido'),
                        array('sexo','rulesSeleccionOK'),
                    
                    
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array('id, apellido, nombre, clase_documento, id_tipodocumento, numero_documento, sexo, fecha_nacimiento, pais_nacimiento, alfabeta, mayores_estudios, anio_mayores_estudios, estado_estudios, calle, nro_calle, piso, dpto, manzana, entrecalle1, entrecalle2, email, telefono, celular, id_barrio, id_municipio, observacioninterna', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'Sumar' => array(self::HAS_ONE, 'Sumar', 'id_persona'),
			'MiTipoDocumento' => array(self::BELONGS_TO, 'TipoDocumento', 'id_tipodocumento'),
			'MiMunicipio' => array(self::BELONGS_TO, 'Municipio', 'id_municipio'),
			'MiBarrio' => array(self::BELONGS_TO, 'Barrio', 'id_barrio'),                   
                        'MiResponsable' => array(self::HAS_MANY, 'Sumar', 'id_responsable'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'id' => 'ID',
			'apellido' => 'Apellido',
			'nombre' => 'Nombre',
			'clase_documento' => 'Clase Documento',
			'id_tipodocumento' => 'Id Tipodocumento',
			'numero_documento' => 'Numero Documento',
			'sexo' => 'Sexo',
			'fecha_nacimiento' => 'Fecha Nacimiento',
			'pais_nacimiento' => 'Pais Nacimiento',
			'alfabeta' => 'Alfabeta',
			'mayores_estudios' => 'Mayores Estudios',
			'anio_mayores_estudios' => 'Anio Mayores Estudios',
			'estado_estudios' => 'Estado Estudios',
			'calle' => 'Calle',
			'nro_calle' => 'Nro Calle',
			'piso' => 'Piso',
			'dpto' => 'Dpto',
			'manzana' => 'Manzana',
			'entrecalle1' => 'Entre calle',
			'entrecalle2' => 'Entre calle',
			'email' => 'Email',
			'telefono' => 'Telefono',
			'celular' => 'Celular',
			'id_barrio' => 'Barrio',
			'id_municipio' => 'Municipio',
			'observacioninterna' => 'Observacion Interna',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 *
	 * Typical usecase:
	 * - Initialize the model fields with values from filter form.
	 * - Execute this method to get CActiveDataProvider instance which will filter
	 * models according to data in model fields.
	 * - Pass data provider to CGridView, CListView or any similar widget.
	 *
	 * @return CActiveDataProvider the data provider that can return the models
	 * based on the search/filter conditions.
	 */
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id,true);
		$criteria->compare('LOWER(apellido)',strtolower($this->apellido),true);
		$criteria->compare('LOWER(nombre)',strtolower($this->nombre),true);
		$criteria->compare('clase_documento',$this->clase_documento,true);
		$criteria->compare('id_tipodocumento',$this->id_tipodocumento);
		$criteria->compare('numero_documento',$this->numero_documento,true);
		$criteria->compare('sexo',$this->sexo,true);
		$criteria->compare('fecha_nacimiento',$this->fecha_nacimiento,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
        
        

	/**
	 * Returns the static model of the specified AR class.
	 * Please note that you should have this exact method in all your CActiveRecord descendants!
	 * @param string $className active record class name.
	 * @return Persona the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}
        
        
         /*********************************************************/
        /************  FUNCIONES ESPECIFICAS *********************/
        /*********************************************************/
           /*TODAS LA FECHAS DE PARAMTEROS Y RESULTADOS AALEN EN FOMATO dd-mm-yyyy*/
        
        
            /* 
             * Retorna un valor logico segun el resultado de la compracion entre la fechas parametrizadas.
             * 
             * Devuelve un valor logico Verdadero en el caso de que las fechas parametrizadas, el segundo
             * parametro sea mayor que el primero.
             * Se parametrizan en formatio dd-mm-yyyy.
             * 
             */   
        /* OK - OK - OK  */
        public  static  function fechaMenorMayor($fechaMenor,$fechaMayor){
             $fechaMayor = explode('-',$fechaMayor); 
             $fechaMenor = explode('-',$fechaMenor); 
        
             $diaMayor = $fechaMayor[0];
             $mesMayor = $fechaMayor[1];
             $anioMayor = $fechaMayor[2];
             $diaMenor = $fechaMenor[0];
             $mesMenor = $fechaMenor[1];
             $anioMenor = $fechaMenor[2];
             
             if ( ($anioMayor > $anioMenor) || (($anioMayor == $anioMenor) && ($mesMayor > $mesMenor))
                 || (($anioMayor == $anioMenor) && ($mesMayor == $mesMenor) && ($diaMayor > $diaMenor)) )
                    return true;
             else
                    return false;
             
        } // FIN function fechaMenorMayor
        
        
        
          /*
           * Convierte una fecha en formaro yyyy-mm-dd  a dd-mm-yyyy, o viceversa
           */
         /* OK - OK - OK  */
         public static function convertirFormatoFecha($fecha){
            $fecha = explode('-',$fecha);
            $fecha = $fecha[2] ."-".$fecha[1]."-".$fecha[0];
            return $fecha;
         } // FIN function convertirFormatoFecha
       
        protected function afterFind(){
            $this->fecha_nacimiento=Persona::convertirFormatoFecha($this->fecha_nacimiento);
            parent::afterFind();
            return TRUE;
        } // FIn afterFind       
     
        protected function beforeSave(){
            $this->fecha_nacimiento = Persona::convertirFormatoFecha($this->fecha_nacimiento);   
            parent::beforeSave();
            return true;
         }// Fin before Find
         
         
         
         
         /********* COMIENZO DE LAS REGLAS DE VALIDACION  ***********/
       
         
         /*
          * Regla de Validacion que comprueba que sea correcto los campos ingresados como nro de documento, segun su tipo.
          * 
          * Dependiendo el tipo de documento ingresado, esta regla comprueba que el campo nro de documento
          * sea valido con respecto al tipo de documento a ingresar.
          */
        /* OK - OK - OK  */ 
        public function rulesDniValido($attribute,$params)
        {
           if (!empty($this->numero_documento)){ 
                $tipoDocumento = $this->id_tipodocumento;
                $documento = $this->numero_documento;
                   
                //Documento Nacional de Identidad: DNI
                if ( (($tipoDocumento=='1') || ($tipoDocumento==1)) &&
                        (($documento<5000000) || ($documento>99999999)) || (!is_numeric($documento)) )
                                $this->addError('numero_documento','Error!! LOS DNI solo permiten valores entre 50000 y 99999999 .');
             }          
        } // FIN rules DniValido
        
        
         
        /*
         * Regla de validacion para validar formato y dia de fechas.
         * 
         * Se verifica por un lado que la misma posea formato especifico de dd-mm-yyyy; y ademas que 
         * la misma sea una fecha correcta del calendario. La misma debe estar expresada e dos digitos para el dia, dos digitos para elmes,
         * y cuatro digitos para el año         
         */
       /* OK - OK - OK  */
        public function rulesFechaValida($attribute,$params){
            if (!empty($this->$attribute)){                      
                $fecha = explode("-",$this->$attribute); 
                $fecha_dia = (int)  $fecha[0];
                $fecha_mes = (int)  $fecha[1];
                $fecha_anio= (int)  $fecha[2];
             
                $atributos = $this->attributeLabels();             
               
                if (($fecha_mes < 1 || $fecha_mes > 12) )
                        $this->addError($attribute,'ERROR!!! Fecha Invalida.   La fecha tiene un formato invalido o no es correcta.'); 
                else if ($fecha_dia < 1 || $fecha_dia > 31)
                                $this->addError($attribute,'ERROR!!! Fecha Invalida.   La fecha tiene un formato invalido o no es correcta.'); 
                else if (($fecha_mes==4 || $fecha_mes==6 || $fecha_mes==9 || $fecha_mes==11) && $fecha_dia >= 31)
                            $this->addError($attribute, 'ERROR!!! Fecha Invalida.    La fecha tiene un formato invalido o no es correcta.'); 
                else if ($fecha_mes == 2)
                {
                    $biciesto = ($fecha_anio % 4 == 0 && ($fecha_anio % 100 != 0 || $fecha_anio % 400 == 0));
                    if ($fecha_dia> 29 || ($fecha_dia == 29 && !$biciesto))
                        $this->addError($attribute,'ERROR!!! Fecha Invalida.   La fecha tiene un formato invalido o no es correcta.'); 
                }            
            }
            else{
              $this->addError($attribute,'ERROR!!! Fecha Vacia. Ingrese una fecha en Formato dd-mm-yyyy.'); 
            }                
       } //Fin rulesfechaValida.
       
       
         /* OK - OK - OK  */
        public function FechaValida($attribute){           
            $valid = false;
            
            if (!empty($attribute)){                      
                $fecha = explode("-",$attribute); 
                $fecha_dia = (int)$fecha[0];
                $fecha_mes = (int)$fecha[1];
                $fecha_anio = (int)$fecha[2];             
                
                $valid = true;             
              
                if (($fecha_mes < 1 || $fecha_mes > 12) )
                    $valid = false;
                else if ($fecha_dia < 1 || $fecha_dia > 31)
                               $valid = false;
                else if (($fecha_mes==4 || $fecha_mes==6 || $fecha_mes==9 || $fecha_mes==11) && $fecha_dia >= 31)
                           $valid = false; 
                else if ($fecha_mes == 2)
                {
                    $biciesto = ($fecha_anio % 4 == 0 && ($fecha_anio % 100 != 0 || $fecha_anio % 400 == 0));
                    if ($fecha_dia> 29 || ($fecha_dia == 29 && !$biciesto))
                       $valid = false;
                }            
            } 
            return $valid;
       } //Fin rulesfechaValida.
       
       
       /*  Valida que sea una fech avalida, y que la msima sea una fecha menor igual a la fecha actual, ya que no puede nacre futuramente*/
      /* OK - OK - OK  */
       public function rulesNacimientoValido($attribute,$params){
         $hoy = date('d-m-Y');
         $nacimiento = $this->$attribute;
          if (Persona::fechaMenorMayor($hoy, $nacimiento )){
                           $this->addError($attribute,'La Fecha de nacimiento debe ser menor/igual a la fecha actual !!!'); 
                    }
       }          
       
       /*
        * NOS VALIDA QUE EL COMBO ESTE SELECCIONADA ALGUNA OPCION VALIDA; POR
        * DEFECTO EL VALRO ES -1; SI VIEBE ESTE VALOR NOSE SELEDCCIOPNMO NINGUNO 
        */
       /* OK - OK - OK  */
       public function  rulesSeleccionOK($attribute,$params) {
          if  (!(( ($this->$attribute == 'F') ||  ($this->$attribute == 'f')) ||
             (($this->$attribute == 'M') || ($this->$attribute == 'm')))){
                 $this->addError($attribute ,'Seleccione una opcion valida!!!');}         
       }       
       
       
       
       
       
       /**********************************************************************/
       /********************* FIN DE LAS REGLAS DE VALIDACION  ***************/
       /**********************************************************************/
     
       
       
       
         
         /* sumarDiasFecha; se parametrizan dos valores; el primero de ellos es una fecha en formato
          * dd-mm-yyy, y el segundo corresponde a la cantidad de dias que se quieren sumar;
          * devuelve un valor de fecha resultado de sumar a la fecha inicial la cantidad de dias dados.
          * El formato de salida es una fecha en dd-mm-yyyy.
          */       
       
         public static function sumarDiasFecha($fecha, $cantDias=1){
            $fecha = Persona::convertirFormatoFecha($fecha); //se lo convierte a formato de fecha ingles yyyy-mm-dd
            $fecha = new DateTime($fecha);
            $fecha->add(new DateInterval('P'.$cantDias.'D'));
            $mifecha = $fecha->format('Y-m-d');
            return Persona::convertirFormatoFecha($mifecha);
        }
       
        
        
        /* Retorna valor Logico en caso de que las dos fechas enviadas haya una diferencia entre la 
         * canTDias parametrizadas, cabe aclarar que la fecha de nacimiento, primera de ellas, sea meor que la segnuda  */
       
        public static function esNeonato($fechaNacimiento=null, $fechaActual=null,$cantDias=0){        
            if (Persona::fechaMenorMayor($fechaActual,$fechaNacimiento))
                    return false;
            else{
              $fechaNacimientoSumada = Persona::sumarDiasFecha($fechaNacimiento, $cantDias);          
              if (Persona::fechaMenorMayor($fechaActual,$fechaNacimientoSumada))
                  return true;
              else
                  return false;          
	   }
        }
        
        
        
        
       
        
        
         //  funcion que calcula la edad entre dos fechas parametrizadas(fecha menor, fecha mayor)
        //  las fechas deben pasarse en formato dd-mm-yyyy.
        //  Devuelve un array con la edad en anios, meses y dias
        
        
         public static function calcularEdad($fechaNacimiento=null, $fechaActual=null){
           if (Persona::model()->FechaValida($fechaNacimiento) && Persona::model()->FechaValida($fechaActual))  {
               $meses = 0;
               $anios = 0;
               $dias = 0;
               
               $cantdias = 0;
            
                list($diaNac,$mesNac,$anioNac) = explode("-",$fechaNacimiento);
                list($diaHoy,$mesHoy,$anioHoy) = explode("-",$fechaActual);         

                $anios = $anioHoy - $anioNac;

                //no se llego a completar otro año de vida por lo tanto debemos restar un año
                if ($mesHoy <  $mesNac){
                 $anios = $anios - 1;
                 
                 $meses = 12 - $mesNac + $mesHoy;
                
                 if ($diaHoy < $diaNac){
                     $meses = $meses - 1;
                     
                     $cantdias = 0;
                     if($mesHoy == '01'){
                       $mesN1 = 12;
                       $anioN1 = $anioHoy -1;}
                     else{
                       $mesN1 = $mesHoy - 1;
                       $anioN1 = $anioHoy;}
                       
                     if ($mesN1 < 10)
                         $mesN1 = '0' . $mesN1;
                     
                     //$fecMenor = $anioN1 . '-' . ($mesN1) . '-' . $diaNac; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     //$fecMayor = $anioHoy . '-' . ($mesHoy) . '-' . $diaHoy;
                     
                     $fecMenor = $diaNac . '-' . ($mesN1) . '-' . $anioN1; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     $fecMayor = $diaHoy . '-' . ($mesHoy) . '-' . $anioHoy;
                     
                     
                     while (Persona::model()->fechaMenorMayor($fecMenor,$fecMayor)) {
                        $cantdias = $cantdias + 1;
                        $fecMenor = Persona::model()->sumarDiasFecha($fecMenor, 1);                        
                     }
                 }/* fin  $diaHoy < $diaNac */
                 else
                   if ($diaHoy > $diaNac){ 
                     $cantdias = $diaHoy - $diaNac;                        
                   }
                   
             }/* FIN DEL IF mesHoy < Mesnac */
             else                 
             //ACA SI YA SE LLEGO A OTRO AÑO DE VIDA POR LO TANTO NO SE REST NINGUN AÑO    
             if ($mesHoy > $mesNac){
                $meses = $mesHoy - $mesNac;
               
                  if ($diaHoy < $diaNac){
                    $meses = $meses - 1;
                     
                     $cantdias = 0; 
                     $mesN1 = $mesHoy - 1;
                     if ($mesN1 < 10)
                         $mesN1 = '0' . $mesN1;
                     
                     //$fecMenor = $anioHoy . '-' . ($mesN1) . '-' . $diaNac; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     //$fecMayor = $anioHoy . '-' . ($mesHoy) . '-' . $diaHoy;
                     $fecMenor = $diaNac . '-' . ($mesN1) . '-' . $anioHoy; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     $fecMayor = $diaHoy . '-' . ($mesHoy) . '-' . $anioHoy;
                    
                     
                     while (Persona::model()->fechaMenorMayor($fecMenor,$fecMayor)) {
                       $cantdias = $cantdias + 1;
                        
                       $fecMenor = Persona::model()->sumarDiasFecha($fecMenor, 1);                        
                     }
                  }
                  else
                  if ($diaHoy > $diaNac){    
                     $cantdias = 0; 
                     //$fecMenor = $anioHoy . '-' . ($mesHoy) . '-' . $diaNac; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     //$fecMayor = $anioHoy . '-' . ($mesHoy) . '-' . $diaHoy;
                      $fecMenor = $diaNac . '-' . ($mesHoy) . '-' . $anioHoy; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     $fecMayor = $diaHoy . '-' . ($mesHoy) . '-' . $anioHoy;
                      
                     while (Persona::model()->fechaMenorMayor($fecMenor,$fecMayor)) {
                       $cantdias = $cantdias + 1;                        
                       $fecMenor = Persona::model()->sumarDiasFecha($fecMenor, 1);                        
                     }      
                    
                }    
                             
                             
                             
                             
	     } /* FIN DE ( $mesHoy > $mesNac )*/
             else
             /* EN CASO DE QUE LA FECHA DE NACIMIENTO Y ACTUAL SEAN IDENTICAS EN AÑO Y MES*/
             if ($mesHoy == $mesNac){
                if ($diaHoy == $diaNac){ /* FECHAS EXACTMANTE IGAULES; QUEDA LA CANTIDAD DE AÑOS*/
                    $meses = 0;
                    $cantdias = 0;
                }else
                 if ($diaHoy < $diaNac){ /* SI EL DIA DE HOY ES MENOR AL DE NACIMIENTO ENTONCES HAY QUE QUITARLE UN AÑO A LA EDAD YA QUE TODFAVIA NO CUMLPIO, TIENE POR LO TANTO 11 MESES Y HAY QUE CALCULAR LA CANTIDAD DE DIAS QUE RESTN PARA ALCANZAR LA FECHA ACTUAL DESDE SU CUMPLEAÑOS */
                    $anios = $anios  - 1; 
                    $meses  = 11;
                    
                     if ($mesN1 == '01'){
                        $mesN1 = 12;
                        $anioN1 = $anioHoy - 1;
                        }
                     else{
                       $mesN1 = $mesHoy - 1;
                       $anioN1 = $anioHoy;
                       }
                     if ($mesN1 < 10)
                         $mesN1 = '0' . $mesN1;
                     
                     //$fecMenor = $anioN1 . '-' . ($mesN1) . '-' . $diaNac; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     //$fecMayor = $anioHoy . '-' . ($mesHoy) . '-' . $diaHoy;
                     $fecMenor = $diaNac . '-' . ($mesN1) . '-' . $anioN1; /* un año ficticio igual para conocer la canridad de dias ya que los años y meses lo calculamos */
                     $fecMayor = $diaHoy . '-' . ($mesHoy) . '-' . $anioHoy;
                    
                     while (Persona::model()->fechaMenorMayor($fecMenor,$fecMayor)) {
                       $cantdias = $cantdias + 1;
                       $fecha = Persona::convertirFormatoFecha($fecha);
                       
                       $fecMenor = Persona::model()->sumarDiasFecha($fecMenor, 1);                        
                     }
                    
                    
                }else
                 if ($diaHoy > $diaNac){ /* SI EL DIA ACTUAL ES MAYOR AL DE NACIMIENTO; CUMPLI UN AÑO MAS Y LA CANTIDA DE DIAS QUE PASARON ENTRE EL DIA DE NACIMIENTO Y EL ACTUAL */
                      $meses  = 0;
                      $cantdias = $diaHoy - $diaNac;
                }
                
             }/* FIN MESHOY = MESNAC */   
              
           $edad = array();
           $edad["result"] =  'OK';
           $edad["anios"] =  $anios;
           $edad["meses"] =  $meses;
           $edad["dias"] =   $cantdias;
           
           return $edad;              
          }else{
              $edad = array();
               $edad["result"] =  'ERROR';
              $edad["anios"] =  -1;
              $edad["meses"] =  -1;
              $edad["dias"] =   -1;
              
              return $edad;
          }
              
        } // fin calcularedad
        
       
        
        /**********************************************************************/
       /********************* INICIO DE LAS FUNCION GET  *********************/
       /**********************************************************************/
       
        /*
        * A continuacion se describen todos los get requeridos para ciertos parametros.    
        */
       
      
        public function getMiDocumento(){
           $cadena = $this->MiTipoDocumento->siglas . ": " . $this->numero_documento . " / " . $this->clase_documento;
           return $cadena;
        }
        
        public function getSexo(){
           if ($this->sexo == 'F')
             return "FEMENINO";
           else
            if ($this->sexo == 'M')
               return "MASCULINO";
            else
               return "SIN SEXO";
        }
        
        public function getDomicilioCompleto(){
            $dom = $this->calle .  "  "  . "<span style=\"color:red\">" . $this->nro_calle ."</span>";
            if (!empty($this->piso))
                $dom = $dom . " (piso: ".$this->piso .")";
            if (!empty($this->dpto))
                $dom = $dom . " (Dpto: ".$this->dpto .")";
            return $dom;
        }
       
}

